package org.dromara.nursing.domain.vo;

import org.dromara.common.translation.annotation.Translation;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.dromara.common.translation.constant.TransConstant;
import org.dromara.nursing.domain.ContractManage;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;



/**
 * 合同视图对象 ms_admission_contract
 *
 * @author Xue
 * @date 2025-04-25
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = ContractManage.class)
public class ContractManageVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 合同ID
     */
    @ExcelProperty(value = "合同ID")
    private Long contractId;

    /**
     * 老人照片
     */
    @ExcelProperty(value = "老人照片")
    private String elderPhoto;

    /**
     * 老人照片Url
     */
    @Translation(type = TransConstant.OSS_ID_TO_URL, mapper = "elderPhoto")
    private String elderPhotoUrl;
    /**
     * 老人姓名
     */
    @ExcelProperty(value = "老人姓名")
    private String elderName;

    /**
     * 身份证号
     */
    @ExcelProperty(value = "身份证号")
    private String idCard;

    /**
     * 联系人姓名
     */
    @ExcelProperty(value = "联系人姓名")
    private String contactName;

    /**
     * 合同编号
     */
    @ExcelProperty(value = "合同编号")
    private String contractNo;

    /**
     * 开始日期
     */
    @ExcelProperty(value = "开始日期")
    private Date startDate;

    /**
     * 结束日期
     */
    @ExcelProperty(value = "结束日期")
    private Date endDate;

    /**
     * 房间号
     */
    @ExcelProperty(value = "房间号")
    private String roomNumber;

    /**
     * 床位号
     */
    @ExcelProperty(value = "床位号")
    private String bedNumber;

    /**
     * 合同类型
     */
    @ExcelProperty(value = "合同类型", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "sys_contract_type")
    private String contractType;

    /**
     * 月费用
     */
    @ExcelProperty(value = "月费用")
    private Long monthlyFee;

    /**
     * 押金
     */
    @ExcelProperty(value = "押金")
    private Long deposit;

    /**
     * 支付方式
     */
    @ExcelProperty(value = "支付方式")
    private String paymentMethod;

    /**
     * 付款周期
     */
    @ExcelProperty(value = "付款周期")
    private String paymentCycle;

    /**
     * 签约人
     */
    @ExcelProperty(value = "签约人")
    private String signedBy;

    /**
     * 签约人与老人关系
     */
    @ExcelProperty(value = "签约人与老人关系")
    private String signerRelationship;

    /**
     * 是否审核
     */
    @ExcelProperty(value = "是否审核", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "sys_is_check_contract")
    private String isCheckContract;

    /**
     * 合同状态
     */
    @ExcelProperty(value = "合同状态", converter = ExcelDictConvert.class)
    @ExcelDictFormat(dictType = "sys_contract_status")
    private String contractStatus;

    /**
     * 终止原因
     */
    @ExcelProperty(value = "终止原因")
    private String terminationReason;

    /**
     * 特殊条款
     */
    @ExcelProperty(value = "特殊条款")
    private String specialTerms;

    /**
     * 备注
     */
    @ExcelProperty(value = "备注")
    private String remarks;


}
